System, method and article of manufacture for a common cross platform framework for development of DVD-video content integrated with ROM content

ABSTRACT

A method for providing enhanced content for play across multiple play platforms employs steps of delivering media content to a client device; delivering HTML content to a client device, the HTML content being accessible and usable by a plurality of client device platforms; activating a browser to access the HTML content, the browser being located on and compatible for use with the client device; activating firmware on the client device to access the media content; and incorporating the accessed HTML content with the accessed media content.

This application is a divisional application of U.S. patent applicationSer. No. 09/898,479 for “SYSTEM, METHOD AND ARTICLE OF MANUFACTURE FORA. COMMON CROSS PLATFORM FRAMEWORK FOR DEVELOPMENT OF DVD-VIDEO CONTENTINTEGRATED WITH ROM CONTENT” filed Jul. 2, 2001, which is anon-provisional claiming priority under 35 U.S.C. 119(e) to U.S.Provisional Patent Application Ser. No. 60/216,822 for “SYSTEM, METHODAND ARTICLE OF MANUFACTURE FOR A COMMON CROSS PLATFORM FRAMEWORK FORDEVELOPMENT OF DVD-VIDEO CONTENT INTEGRATED WITH ROM CONTENT” filed Jul.7, 2000, all of which are incorporated herein by reference as if set forin their entirety.

BACKGROUND OF THE INVENTION

The present invention relates to enhancement of multimedia content andmore particularly to a system, method and apparatus for enhancingmultimedia content with supplemental content.

Multimedia computer systems have become increasingly popular over thelast several years due to their versatility and their interactivepresentation style. A multimedia computer system can be defined as acomputer system having a combination of video and audio outputs forpresentation of audio-visual displays. A modern multimedia computersystem typically includes one or more storage devices such as an opticaldrive, a CD-ROM, DVD (DVD-Video or DVD Audio etc), Laser Disc, VideoDisc or Audio Disc, or a hard drive. Audio and video data are typicallystored on one or more of these mass storage devices. In some fileformats the audio and video are interleaved together in a single file,while in other formats the audio and video data are stored in differentfiles, many times on different storage media. Audio and video data for amultimedia display may also be stored in separate computer systems thatare networked together. In this instance, the computer system presentingthe multimedia display would receive a portion of the necessary datafrom the other computer system via the network-cabling.

Multimedia computer systems have become increasingly popular over thelast several years due to their versatility and their interactivepresentation style. A multimedia computer system can be defined as acomputer system having a combination of video and audio outputs forpresentation of audio-visual displays. A modern multimedia computersystem typically includes one or more storage devices such as an opticaldrive, a CD-ROM, a hard drive, a videodisc, or an audio disc, and audioand video data are typically stored on one or more of these mass storagedevices. In some file formats the audio and video are interleavedtogether in a single file, while in other formats the audio and videodata are stored in different files, many times on different storagemedia. Audio and video data for a multimedia display may also be storedin separate computer systems that are networked together. In thisinstance, the computer system presenting the multimedia display wouldreceive a portion of the necessary data from the other computer systemvia the network cabling.

Graphic images used in Windows multimedia applications can be created ineither of two ways, these being bit-mapped images and vector-basedimages. Bit-mapped images comprise a plurality of picture elements(pixels) and are created by assigning a color to each pixel inside theimage boundary. Most bit-mapped color images require one byte per pixelfor storage, so large bit-mapped images create correspondingly largefiles. For example, a full-screen, 256-color image in 640-by-480-pixelVGA mode requires 307,200 bytes of storage, if the data is notcompressed. Vector-based images are created by defining the end points(corners), thickness, color, pattern and curvature of lines and solidobjects within an image. Thus, a vector-based image includes adefinition that consists of a numerical representation of thecoordinates of the object, referenced to a corner of the image.

Bit-mapped images are the most prevalent type of image storage format,and the most common bit-mapped-image file formats are as follows. A fileformat referred to as BMP is used for Windows bit-map files in 1-, 2-,4-, 8-, and 24-bit color depths. BMP files contain a bit-map header thatdefines the size of the image, the number of color planes, the type ofcompression used (if any), and the palette used. The Windows DIB(device-independent bit-map) format is a variant of the BMP format thatincludes a color table defining the RGB (red green blue) values of thecolors used. Other types of bit-map formats include the TIF (taggedimage format file), the PCX (Zsoft Personal Computer Paintbrush Bitmap)file format, the GIF (graphics interchange file) format, and the TGA(Texas Instruments Graphic Architecture) file format.

The standard Windows format for bit-mapped images is a 256-colordevice-independent bit map (DIB) with a BMP (the Windows bit-mapped fileformat) or sometimes a DIB extension. The standard Windows format forvector-based images is referred to as WMF (Windows meta file).

Full-motion video implies that video images shown on the computer'sscreen simulate those of a television set with identical (30frames-per-second) frame rates, and that these images are accompanied byhigh-quality stereo sound. A large amount of storage is required forhigh-resolution color images, not to mention a full-motion videosequence. For example, a single frame of NTSC video at 640-by-400-pixelresolution with 16-bit color requires 512K of data per frame. At 30flames per second, over 15 Megabytes of data storage are required foreach second of full motion video. Due to the large amount of storagerequired for full motion video, various types of video compressionalgorithms are used to reduce the amount of necessary storage. Videocompression can be performed either in real-time, i.e., on the flyduring video capture, or on the stored video file after the video datahas been captured and stored on the media. In addition, different videocompression methods exist for still graphic images and for full-motionvideo.

Examples of video data compression for still graphic images are RLE(run-length encoding) and JPEG (Joint Photographic Experts Group)compression. RLE is the standard compression method for Windows BMP andDIB files. The RLE compression method operates by testing for duplicatedpixels in a single line of the bit map and stores the number ofconsecutive duplicate pixels rather than the data for the pixel itself.JPEG compression is a group of related standards that provide eitherlossless (no image quality degradation) or lossy (imperceptible tosevere degradation) compression types. Although JPEG compression wasdesigned for the compression of still images rather than video, severalmanufacturers supply JPEG compression adapter cards for motion videoapplications.

In contrast to compression algorithms for still images, most videocompression algorithms are designed to compress full motion video. Videocompression algorithms for motion video generally use a concept referredto as interframe compression, which involves storing only thedifferences between successive frames in the data file. Interframecompression begins by digitizing the entire image of a key frame.Successive frames are compared with the key frame, and only thedifferences between the digitized data from the key frame and from thesuccessive frames are stored. Periodically, such as when new scenes aredisplayed, new key frames are digitized and stored, and subsequentcomparisons begin from this new reference point. It is noted thatinterframe compression ratios are content-dependent, i.e., if the videoclip being compressed includes many abrupt scene transitions from oneimage to another, the compression is less efficient. Examples of videocompression which use an interframe compression technique are MPEG, DVIand Indeo, among others.

MPEG (Moving Pictures Experts Group) compression is a set of methods forcompression and decompression of full motion video images that uses theinterframe compression technique described above. The MPEG standardrequires that sound be recorded simultaneously with the video data, andthe video and audio data are interleaved in a single file to attempt tomaintain the video and audio synchronized during playback. The audiodata is typically compressed as well, and the MPEG standard specifies anaudio compression method referred to as ADPCM (Adaptive DifferentialPulse Code Modulation) for audio data.

A standard referred to as Digital Video Interactive (DVI) formatdeveloped by Intel Corporation is a compression and storage format forfull-motion video and high-fidelity audio data. The DVI standard usesinterframe compression techniques similar to that of the MPEG standardand uses ADPCM compression for audio data. The compression method usedin DVI is referred to as RTV 2.0 (real time video), and this compressionmethod is incorporated into Intel's AVK (audio/video kernel) softwarefor its DVI product line. IBM has adopted DVI as the standard fordisplaying video for its Ultimedia product line. The DVI file format isbased on the Intel i750 chipset and is supported through the MediaControl Interface (MCI) for Windows. Microsoft and Intel jointlyannounced the creation of the DV MCI (digital video media controlinterface) command set for Windows 3.1 in 1992.

The Microsoft Audio Video Interleaved (AVI) format is a specialcompressed file structure format designed to enable video images andsynchronized sound stored on CD-ROMs to be played on PCs with standardVGA displays and audio adapter cards. The AVI compression method uses aninterframe method, i.e., the differences between successive frames arestored in a manner similar to the compression methods used in DVI andMPEG. The AVI format uses symmetrical software compression-decompressiontechniques, i.e., both compression and decompression are performed inreal time. Thus AVI files can be created by recording video images andsound in AVI format from a VCR or television broadcast in real time, ifenough free hard disk space is available.

As discussed above, such audio and video content is often stored onmedia such as CD-ROM or digital video disc (DVD). However, once a vendorhas delivered such content to a customer, the vendor loses any practicalcontrol over the product. Even if the product is delivered under licenserather than out right sale, it has traditionally been difficult toprevent a customer from copying the content or providing the content toany number of friends so that they might illegally copy the content.

The now familiar compact disk preserves information as a series ofmicroscopic pits and smooth areas, oriented in concentric circular orhelical tracks, on the otherwise smooth, planar surface of an annulardisk. Recorded information is read from a compact disk by directing afocused laser beam along the recorded tracks, and detecting variationsin the intensity of the laser beam along the recorded tracks, anddetecting variations in the intensity of the laser beam as it encountersthe microscopic pits and smooth areas on the disk. The coherence andrelatively short wavelength of laser radiation enables large volumes ofinformation to be written onto very small spaces of a recording medium.

Compact disks were first introduced in the music recording industry in1982, and now account for 43% of all recorded music sales. In the UnitedStates alone, over three hundred million compact disks are soldannually, with a retail value of over three billion dollars, accordingto the Recording Industry Association of America. The most prevalentformat for recording multimedia events onto such disks is Digital Videoor Versatile Disk (DVD). The DVD is a read only format for recording arelatively large amount of high quality data. When delivered to a user,the disk is input into a CD-ROM player on a client device such as acomputer. Software on the client device allows the DVD formatted data tobe read.

Once the DVD disk has been manufactured the content is essentiallyfixed. The content that the user can access from the disk is limited tothe content provided when the disk was manufactured. In order to updatethe information, a new disk must be created and delivered to the user.This is an expensive and inconvenient solution.

Thus there remains a need for a system for easily and efficientlyupdating content provided on a DVD-disk. Such a system would preferablyallow update information to be delivered via a network such as theInternet. In addition, such a system would take advantage of softwarecapabilities already present on the client device, and would importantlybe able to function on the many different possible platforms of clientdevices, such as for example Macintosh, PC or a set top box.

Disc technologies that are re-writeable like a CD-RW or technologiesthat allow multiple sessions can be used for adding additional orupdated content directly to the disc. Thus for multi-session discs,where the first session of the disc is write-once and additionalsessions on the disc can be either write-one, or rewriteable, additionalor updated content can be added to these additional sessions of thedisc. This includes such technologies as the “Orange Book” specificationfor CD-ROM, including CD-PROM and Multimedia discs such a Dataplay.

Flash memory based and other similar memory technologies can be used forstoring multimedia and additional or updated content as well. Thisincludes IBM technology that uses a USB interface to coupled a personalcomputer to a storage device such as a “keychain” memory device.

The present invention advantageously addresses the above and otherneeds.

SUMMARY OF THE INVENTION

The present invention advantageously addresses the needs above as wellas other needs by providing the enhancement of multimedia content andmore particularly to providing a system, method and apparatus forenhancing multimedia content with supplemental content.

In one embodiment, the invention can be characterized as a method forproviding enhanced content for play across multiple play platforms. Themethod employs steps of delivering media content to a client device;delivering HTML content to a client device, the HTML content beingaccessible and usable by a plurality of client device platforms;activating a browser to access the HTML content, the browser beinglocated on and compatible for use with the client device; activatingfirmware on the client device to access the media content; andincorporating the accessed HTML content with the accessed media content.

In another embodiment, the invention can be characterized as a methodfor enhancing multimedia content. The method employs steps of providinga recording medium; recording content onto the recording medium;integrating HTML content with the recorded content; accessing therecorded content and the HTML content; and playing a multimedia eventbased on the accessed content.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and other aspects, features and advantages of the presentinvention will be more apparent from the following more particulardescription thereof, presented in conjunction with the followingdrawings wherein:

FIG. 1 is a schematic diagram of a hardware implementation of oneembodiment of the present invention;

FIG. 2 is a schematic diagram of a system for enhancing a DVD multimediaexperience;

FIG. 2A is a flow chart illustrating steps traversed upon insertion of aDVD disk (or other media) into a device, such as a DVD player;

FIG. 3 is a flowchart illustrating logic for incorporating updateinformation to supplement a DVD multimedia play experience;

FIG. 4 is graphical representation of data layouts for bitmap layers;

FIG. 5 is a flowchart illustrating a method for providing an enhancedmultimedia experience; and

FIG. 6 is a flowchart illustrating a method for enhancing DVD contentwith ROM content.

Corresponding reference characters indicate corresponding componentsthroughout the several views of the drawings.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The following description of the presently contemplated best mode ofpracticing the invention is not to be taken in a limiting sense, but ismade merely for the purpose of describing the general principles of theinvention. The scope of the invention should be determined withreference to the claims.

FIG. 1 illustrates a system for providing enhanced DVD content for playacross multiple user platforms. Both DVD-Video content and HTML contentare recorded on DVD discs and provided to a user. The HTML contentincludes various directories that allow it to be accessed by multipleplatforms of user devices. Once inserted into a user device, browsersoftware on the user device accesses the HTML content and suppliessupplemental update information to enhance the play experience providedby the DVD-Video content. The supplemental update information can beeither retrieved via a network such as the Internet or can be provideddirectly from the HTML data itself stored on the DVD disc.

In various embodiments, the client devices may take the form ofcomputers, televisions, stereos, home appliances, or any other types ofdevices. In one embodiment, the client apparatuses and the host computereach include a computer such as an IBM compatible computer, AppleMacintosh computer or UNIX based workstation.

A representative hardware environment is depicted in FIG. 1, whichillustrates a typical hardware configuration of a workstation inaccordance with a preferred embodiment having a central processing unit110, such as a microprocessor, and a number of other unitsinterconnected via a system bus 112. The workstation shown in FIG. 1includes a Random Access Memory (RAM) 114, Read Only Memory (ROM) 116,an I/O adapter 118 for connecting peripheral devices such as diskstorage units 120 (i.e. DVD playback device) to the bus 112, a userinterface adapter 122 for connecting a keyboard 124, a mouse 126, aspeaker 128, a microphone 132, and/or other user interface devices suchas a touch screen (not shown) to the bus 112, communication adapter 134for connecting the workstation to a communication network (e.g., a dataprocessing network) and a display adapter 136 for connecting the bus 112to a display device 138. The workstation typically has resident thereonan operating system such as the Microsoft Windows NT/2000 or Windows95/98/ME Operating System (OS), the IBM OS/2 operating system, the MACOS, or UNIX operating system. Those skilled in the art will appreciatethat the present invention may also be implemented on platforms andoperating systems other than those mentioned.

A preferred embodiment is written using JAVA, C, HTML and the C++language and utilizes object oriented programming methodology. Objectoriented programming (OOP) has become increasingly used to developcomplex applications. As OOP moves toward the mainstream of softwaredesign and development, various software solutions require adaptation tomake use of the benefits of OOP. A need exists for these principles ofOOP to be applied to a messaging interface of an electronic messagingsystem such that a set of OOP classes and objects for the messaginginterface can be provided.

A preferred embodiment of the invention utilizes Hypertext MarkupLanguage (HTML) to implement documents on the Internet together with ageneral-purpose secure communication protocol for a transport mediumbetween the client and the Newco. HTTP or other protocols could bereadily substituted for HTML without undue experimentation. Informationon these products is available in T. Berners-Lee, D. Connoly, “RFC 1866:Hypertext Markup Language—2.0” (November 1995); and R. Fielding, H,Frystyk, T. Berners-Lee, J. Gettys and J. C. Mogul, “Hypertext TransferProtocol—HTTP/1.1: HTTP Working Group Internet Draft” (May 2, 1996).HTML is a simple data format used to create hypertext documents that areportable from one platform to another. HTML documents are SGML documentswith generic semantics that are appropriate for representing informationfrom a wide range of domains. HTML has been in use by the World-Wide Webglobal information initiative since 1990. HTML is an application of ISOStandard 8879; 1986 Information Processing Text and Office Systems;Standard Generalized Markup Language (SGML).

To date, Web development tools have been limited in their ability tocreate dynamic Web applications which span from client to server andinteroperate with existing computing resources. Until recently, HTML hasbeen the dominant technology used in development of Web-based solutions.However, HTML has proven to be inadequate in the following areas:

-   -   Poor performance;    -   Restricted user interface capabilities;    -   Can only produce static Web pages;    -   Lack of interoperability with existing applications and data;        and    -   Inability to scale.

Sun Microsystem's Java language solves many of the client-side problemsby:

-   -   Improving performance on the client side;    -   Enabling the creation of dynamic, real-time Web applications;        and    -   Providing the ability to create a wide variety of user interface        components.

With Java, developers can create robust User Interface (UI) components.Custom “widgets” (e.g., real-time stock tickers, animated icons, etc.)can be created, and client-side performance is improved. Unlike HTML,Java supports the notion of client-side validation, offloadingappropriate processing onto the client for improved performance.Dynamic, real-time Web pages can be created. Using the above-mentionedcustom UI components, dynamic Web pages can also be created.

Sun's Java language has emerged as an industry-recognized language for“programming the Internet.” Sun defines Java as: “a simple,object-oriented, distributed, interpreted, robust, secure,architecture-neutral, portable, high-performance, multithreaded,dynamic, buzzword-compliant, general-purpose programming language. Javasupports programming for the Internet in the form ofplatform-independent Java applets.” Java applets are small, specializedapplications that comply with Sun's Java Application ProgrammingInterface (API) allowing developers to add “interactive content” to Webdocuments (e.g., simple animations, page adornments, basic games, etc.).Applets execute within a Java-compatible browser (e.g., NetscapeNavigator) by copying code from the server to client. From a languagestandpoint, Java's core feature set is based on C++. Sun's Javaliterature states that Java is basically, “C++ with extensions fromObjective C for more dynamic method resolution.”

Another technology that provides similar function to JAVA is provided byMicrosoft and ActiveX Technologies, to give developers and Web designerswherewithal to build dynamic content for the Internet and personalcomputers. ActiveX includes tools for developing animation, 3-D virtualreality, video and other multimedia content. The tools use Internetstandards, work on multiple platforms, and are being supported by over100 companies. The group's building blocks are called ActiveX Controls,small, fast components that enable developers to embed parts of softwarein hypertext markup language (HTML) pages. ActiveX Controls work with avariety of programming languages including Microsoft Visual C++, BorlandDelphi, Microsoft Visual Basic programming system and, in the future,Microsoft's development tool for Java, code named “Jakarta.” ActiveXTechnologies also includes ActiveX Server Framework, allowing developersto create server applications. One of ordinary skill in the art readilyrecognizes that ActiveX could be substituted for JAVA without undueexperimentation to practice the invention.

In accordance with one embodiment, a cross-platform DVD specificationdefined, which is called InterActual Technologies Cross Platform,hereafter referred to by the name ITX. By following the ITXspecification, DVD authors can create HTML-enhanced DVD-Video/Audiocontent that can play reliably across multiple playback platforms,ranging from computers (such as Windows and Macintosh) toInternet-connected set-top devices (such as the Sony Playstation II andNuon-enhanced consumer DVD players). The general requirements forenhanced DVD authoring and the requirements for the playback devices,both hardware and software are described herein.

The ITX enables DVD-Video/Audio (hereafter referred to only asDVD-Video) content developers to create products that seamlessly combinethe Internet and/or other DVD-ROM capabilities with DVD-Video to createa richer, more interactive, and personalized entertainment experiencefor their customers. All this is accomplished without the need forcontent developers to create special content for each unique playbackplatform, and without the need of becoming an expert programmer onWindows, Macintosh, and other platforms. Additionally the presentinvention allows for customized content and functions tailored forspecific platform(s).

Internet connectivity is not a requirement for the use of ITX. Astand-alone system with HTML browser functionality is all that isrequired. In addition, CD-DA (standard music CDs) can also be enhancedby use of ITX.

The following terms are defined as follows: Term Description BCA BurstCutting Area. Area near inner ring on a DVD disc where custom data canbe imprinted ATVEF Advanced Television Enhancement Forum (spec allowscombining HTML and TV programming) PIP Picture in Picture DVD-Video Adisc authored in accordance with the DVD-Video specification. Any placewhere the term DVD-Video is used it also applies to DVD-Audio, unlessspecifically excluded. UOP User Operations (as defined DVD-Video andDVD-Audio specifications)

The following documents are incorporated by reference: 1. HTML CrossPlatform Authoring Guidelines 2. ISO-9660 3. ATVEF Specification(http://www.atvef.com) 4. DVD-Video (Book 3) and DVD-Audio (Book 4)specifications

The ITX specification provides a common framework whereby contentdevelopers, browser providers, and hardware manufacturers cansuccessfully create and playback Internet-enhanced DVD and CD products.

This description of the embodiments is divided into three majorsections, targeting three different audiences:

-   -   Content Development Requirements: Addresses issues specific to        DVD authors and content creators. The target audience includes        DVD authoring facilities, web designers, and graphics and        creative production facilities. This section outlines the        integration of DVD-Video with Web Pages, Programming        Interfacing, and other cross-platform DVD-Video and DVD-ROM        authoring considerations.    -   Browser Requirements: Addresses issues specific to browser        implementation. The target audience includes establishments such        as: PlanetWeb, Spyglass, Liberate, and VM Labs (with a custom        implementation of the Spyglass browser). This section outlines        basic browser requirements to support ITX titles and integration        of a DVD-Video programming interface.    -   Platform/Rardware Requirements: Addresses issues specific to        DVD-Video hardware platforms. The target audience includes        specialized chip manufacturers, consumer DVD-Video player, game        system manufacturers (Sony Playstation, Nintendo, Sega), and any        others who might incorporate web connectivity into DVD player        products. This section outlines display requirements, browser        interfaces, and other hardware-specific requirements.

With reference to FIG. 2, in an embodiment, a system 200 is provided forenhancing an internet play experience. ROM/HTIM content 202 is recordedonto a DVD disc 204. Additionally DVD-Video content 206 is also recordedonto the DVD disc. The disc 104 is inserted into a client device 208that contains Browser/Presentation software 210 thereon. The clientdevice hardware also includes a DVD Firmware/Navigator 212 that readsthe DVD-Video content. In addition, the client device 208 includes aBrowser/Presentation Engine software 110, which reads the ROM/HTMLContent. The Browser/Presentation Engine can be for example NetscapeNavigator or some other engine commonly available on personal computers.After reading the ROM/HTML content, the browser software 110 searchesthe Internet to find supplemental information related to the DVD contentand incorporates the supplemental information into the DVD content 202,206 to create an Internet Enhanced DVD Experience 214.

To better understand the purpose and goals of ITX three possible usagescenarios are described, each with an increasing level of complexity.

DVD-Video Disc with Movie Script Provided:

A movie is authored with the entire screenplay provided on the DVD discin HTML format. Clicking on any scene visually represented in the HTMLimmediately links the user to that scene within the DVD-Video. Besidesbeing a finer granularity than the normal chapter navigation provided onDVD-Video, the HTML-based script could contain other media (pictures,audio) and/or live web links for other information (stored either on theDVD disk, or accessible through the Internet). Further, the text of thescreenplay in HTML could automatically “scroll” with the DVD-Video togive the appearance of being synchronized with the DVD-Video. Althoughmany of these types of features (minus live web links and synchronizedscrolling) could be authored in DVD-Video, HTML authoring is much moreefficient, immediate and widely known.

More Complex Menus:

A DVD-Video is shipped with a simple HTML page that does little exceptstart a movie. However, the HTML page also uses the Internet and checksto see if that movie has any web site updates. If it does, then the HTMLpage launches a new movie menu that is downloaded from the web. This newmenu might have e-commerce opportunities (buy gifts based on the movie;buy tickets for the sequel to the DVD, etc.). Because the new movie menuis not on the DVD-Video, but rather is on a server accessible via theinternet, the window of time during which the choices on the new moviemenu is available can be decided by the studio long after the DVD-Videohas shipped. The new movie menu may have new links to an actor's website, which can be particularly advantageous if, for example, the actorhas become a star since the movie was made, and therefore wasn't givenstar treatment in the original DVD-Video. The new movie menu may just bea more convenient way to navigate the disc to a finer granularity thanthe chapters provided. Advantageously, in accordance with the presentembodiment, the DVD can have new movie menus stored on a serveraccessible through the internet, and that can be changed over time. Ifthe DVD-Video is played without ITX, the DVD-Video operates in aconventional manner.

Live Webcast with the Director or Stars in Live Chat:

A DVD-Video movie is shipped with an HTML page that links the user to anITX web site. This site (and studio advertising) notifies the user ofthe date/time of a “live chat” with, for example, the movie's director,who will discuss the making of the movie. Near the event starting time,the user connects to the web site with the DVD-Video in his/her DVDplayer. At the start time, the director begins sending voice (such asstreaming audio, e.g., Real Audio) over the Internet. The directorcontrols the DVD player of the user, as well as other DVD players, bysending play, pause, fast-forward, and rewind commands, etc.(Latecorners are automatically synchronized). User (if they have, forexample, a browser with a keyboard) can enter questions. The directorcan choose which questions to answer and control every DVD player to anappropriate scene in the movie and discuss the scene. Through the use ofbitmap overlay layers and drawing tools, the director can pause thevideo and draw on the screen (like a football play) to better explainthe details involved in creating a certain scene, for example. As thedirector moves from one question to another the video can usetransitions and special effects to make the presentation moreprofessional and entertaining.

In order to support the above-described functionality, the presentembodiment is as follows. An ITX disk can contain DVD Video andITX-compatible ROM data, DVD-Audio and ITX-compatible ROM data, CD-Audioand ITX-compatible ROM data, or the like. The ITX compatible ROM datacan be any digital file type including HTML and graphics, including forexample, HTML graphics, subject to file system limitations describedbelow. There is no theoretical limit to the amount of ITX compatible ROMdata that can be placed on a DVD disk, except for physical constraintsof the DVD disk (or in an alternative embodiment CD-disk).

An ITX-compatible disk adheres to rules regarding capability, detection,file system, directory structure, and content location, each of which isdescribed in further detail herein. As multi-platform support is a goalof the present embodiment, an ITX disk provides for bothplatform-specific behavior and general-purpose behavior.Platform-specific behavior can be accomplished using the ITX-APIdescribed above, by either placing platform-specific binaries on the DVDdisk in predefined directories, described herein, or by authoringgeneral purpose HTML content that uses, for example, ECMAScript orJavaScript and the ITX API to detect specific platforms and to “serve”web pages specifically designed for a particular platform, i.e.,particular type of device. General purpose content can be created forplayback on multiple platforms using HTML content and the ITX API. Bothapproaches can be combined so that platform-specific behavior can beemployed with certain devices, while other devices, such as devicesdeveloped after release of the DVD disk, can be supported withgeneral-purpose behavior.

For personal computers, such as personal computers operating underMicrosoft Windows, ITX content can be viewed through a proprietarybrowser client per the ITX content viewed through the proprietarybrowser client can be the same content that is displayed on, forexample, a browser-enhanced consumer electronics system, such as a settop box, a game console, or an internet-connected DVD player or thelike.

The device must provide a capability to determine the type of media thathas been inserted into the device. Specifically, the device must be ableto determine whether the media is a DVD disk or some form of CD disk.For CD-DA, there may or may not be a file structure formatted on theCD-DA disk, such as described herein and therefore the CD-DA disk tableof contents must be read per the “red-book” specification.

An ITX-compatible DVD or CD is detected by checking for the existence ofa file named index.htm in a directory named common. The ITX-API versioninformation can be found in a mediated area in the index.htm file, whichis an HTML file.

The index.htm file provides JavaScript that detects the particular typeof device into which the DVD disk has been inserted, and the device is“navigator,” and provides general framework for interactive playback.For a disk not authored in accordance with the ITX content, a contenthomepage is employed, i.e., file named default.htm is employed. Thedefault.htm file may be stored in memory on the device.

Content Development Requirements:

This section describes the requirements for content developers, DVDauthors, and creative houses. This section outlines how DVD-Video can beintegrated with ROM content for playback across multiple hardwareplatforms and multiple browsers. For more information regardingcross-platform HTML development (independent of integration withDVD-Video), refer to the InterActual™ HTML Cross Platform AuthoringGuidelines document. This reference document outlines platform/browserdetection, use of JavaScript files (.js files) and other HTML authoringtechniques.

DVD/ROM Authoring Considerations:

ITX Directory and File Naming Conventions (Mandatory Compliance)

When making an ITX disk, DVD video zone files must be placed physicallyat the beginning of the ITX disk, contiguously, in the order specifiedby the DVD-Video specification, likewise, DVD-Audio zone files mustfollow the DVD-Video files in contiguous order.

The DVD specifications for DVD-Video and DVD-Audio require that eachdisc contain specific directories and files. For example, the DVD-Videofiles are contained in a directory (or folder) with the name VIDEO_TS;DVD-Audio files in the AUDIO_TS directory. The VIDEO_TS and AUDIO_TSdirectories should be the first entries in the directory descriptor (thetrue order of the directory and file entries is usually hidden, sincemost operating systems list them in, for example, alphabetical order).There is no such requirement for “DVD-ROM” content, and, thus,developers can arrange other files on a disc in any desired manner. Itis best to place ROM-zone files in subdirectories versus the rootdirectory. The placement of files on a dual-layered disk (DVD-9, DVD-14,or DVD-18) is generally independent of layer details. DVD-Video andDVD-Audio files must begin on layer zero. ROM-zone files are beginningafter the DVD-Video (or DVD-Audio) files and can cross layer boundaries,if needed. In order to prevent problems that can arise from this openaspect of the specifications, ITX provides a convention for ordering andnaming files.

Files stored for use with ITX can be in any DVD disc directory. However,there must be a method that allows the platform-specific browser and/orplayback engine to identify the initial starting HTML file in the casewere there is no executable file. Also, in order to simplify support, itis strongly suggested that the full convention described below befollowed on all ITX-authored discs.

ITX Naming Standard:

Each DVD-Video authoring system and tool set supports different namingcapabilities; such as ISO-9660, ISO-9660 with Joliet extensions,Macintosh file names, support for Macintosh resources, hybrid discs,etc. Some authoring tools go even further by forcing a certain charactercase (e.g., the Toshiba authoring system forces all characters touppercase). These issues must be taken into account as part of thedevelopment process since some playback platforms may operatedifferently depending on the physical layout and file structure on theDVD. As a specific example, Windows and Macintosh operating systems arecase insensitive, whereas Unix and Linux operating systems are casesensitive.

For ITX compliance, the following naming standard must be followed:

-   -   UDF 1.02 and ECMA 167 (second edition)    -   Support for hybrid Windows/Macintosh discs (whereby resource        forks for the Macintosh operating system are preserved)

All files and directories must be developed with case sensitivity inmind. The recommended approach is to use only capital letters for alldirectories, file names, and HTML references. To be safe, only use A-Z,0-9 and the underscore. The initial HTML file shall have a name ofITX.HTM.

ITX Directories:

The ITX.HTM file must be located in a directory that follows theserules. Other files, based on individual authoring needs may be locatedin any directory following any convention. There may be more than oneITX.HTM file. For example, there could be a different one for eachplatform supported, or just one primary one and one alternate for asingle platform that requires special operations. Directory namePlatform COMMON All (default) LINUX linux operating system MAC MacintoshNINTENDO Nintendo Dolphin SONY Playstation II and CE NUON VMLabs WINWindows SEGA Sega Dreamcast TOSHIBA Toshiba WIN Windows ZORAN Zoran Tobe determined all other ITX directory names must be registered to insureno conflicts.

Directory Naming Conventions

Note that any new platform directory names should be reserved andassigned before use. However, each platform developer can control thedirectory structure under its reserved top-level directory name. Forexample, Sony could create a PS2 and PS3 directory under the SONYdirectory.

This directory structure allows for proprietary executable binary filesfor each platform. For example, a current PCFriendly DVD (i.e., a DVD inaccordance with the present embodiment) can utilize the directorystructure by placing the Windows version of software in a WIN directory,and a Macintosh version of software in a MAC directory. Upon insertionof the disc, the platform will initiate execution of the appropriatebinaries (based on some platform-specific autorun feature) and then thebinaries will load the ITX.HTM file.

The set-top player browser shall locate its starting file via thefollowing logic:

-   -   Check for online updates enabled and online    -   If OK, then check web for update and use, if found    -   Else check for its platform-specific directory.    -   If the platform-specific directory exists and the ITX.HTM file        is found, then start;    -   Else if the COMMON ROM directory exists and the ITX.HTM file is        found, then start;    -   Else the disc is not an ITX disc and it should be played as a        DVD-Video disc.

The above-described structure allows for device specific executablebinary file for each type of device supported by a particular DVD disk.The platform-specific directory structure and its associated set ofbinaries enable any platform to run executables specifically designedfor any device provided that such executables are available on theparticular DVD disk being utilized. This capability, in essence, allowsthe device specific binaries to override general purpose ITX content oroverride a standard browser mechanism. While the actual ROM content mayreside in a device specific directory, it is recommended that allcontent reside in the common directory when possible. The commondirectory can support any number of subdirectories, including devicespecific subdirectories.

The common directory stores, in most cases, the actual ITX content(versus platform specific binaries). It is recommended that all ITXcontent (even platform specific ITX content reside in the commondirectory as this provides an intuitive content development approach. Bymaintaining a single content directory, Java Script can easily be usedto detect platforms and render appropriate HTML players pages tailoredto specific devices.

There may be cases where device specific binaries may be included on theDVD disk, but still the general-purpose content. For example, an ITXdisk can utilize the directory structure by placing a Windows version ofsoftware in the WIN directory, and the Macintosh version of the softwarein the MAC directory. Upon insertion of the ITX disk, the platform willinitiate execution of the appropriate binaries (based on a devicespecific feature, such as autorun) and then the binaries will load theindex.htm file located in the common directory, the starting point forany general-purpose ITX disk.

The starting or entry point is the index.htm file, with which resides inthe top level of the common directory. It is recommended that all ITXcontent (with the exception of device-specific binaries) be stored inthe common directory. Java Script can then be used to detect platformsand render appropriate HTML pages tailored to specific platforms. Theindex.htm file will be the background “container” web page whilestandard playback occurs. This page enables Java Script event handlersto be loaded and activate to handle events during playback. Themeta-data of the index.htm file contains the ITX-API versioninformation.

Referring to FIG. 2A, a flow chart is shown of steps traversed upon thecoupling of a storage medium with, e.g., insertion of a DVD disk into, adevice, e.g., a personal computer, a consumer electronics device, a gameconsole, or the like. Steps traversed upon insertion of the DVD diskinto the device are divided into phases as follows. During the firstphase, a disk detection algorithm determines if the disk has content inaccordance with the present embodiment, i.e., whether the disk is an ITXdisk, i.e., whether the disk contains ITX content. This determination ismade by examining whether a file named index.htm is located in a“common” directory on the DVD disk.

If the index.htm file exists, then the DVD disk is an ITX disk.Otherwise, the DVD disk is determined not to be an ITX disk. During asecond phase, a determination is made as to whether the DVD disk is aDVD-Video or a DVD-Audio, or whether a disk of another type has beeninserted, such as a CD-DA. Logic for performing the second phase isincluded, generally, in the device, and this is not discussed in detailfurther herein. (Such logic is known.)

During a third phase, a determination is made as to a default playbackmode of the device. This is determined by reading a “player mode” fromthe property, e.g., InterActual.PlayerMode. If the device is configuredfor “play” mode, ITX content, e.g., HTML content, is bypassed, whereasif the device is configured for ITX mode, then the ITX content islaunched beginning with the index.htm file in the common directory. TheITX content itself can then be updated dynamically if the device isconnected to the Internet, or an equivalent network. There is noInternet connection, or equivalent connection, the device renders ITXcontent from a ROM portion of the DVD disk.

For non-ITX disks, when the device is configured for ITX mode, a defaultcontent home page (called default.htm) is displayed and an Internetconnection, or equivalent, is attempted to provide potential ITX contentfor the non-ITX disk.

During a fourth phase, platform specific file detection occurs, and adetermination is made as to whether there are platform specific binaryfiles on the DVD disk for the device. This is accomplished by searchingfor a predefined directory, as described above, associated with thedevice.

During a fifth phase, a determination is made as to whether a connectionto the internet or similar network, can be made. This step is performedfor ITX disks in order to determine whether updated content is availablefrom a server. Additionally, for DVD disks without ITX content, aconnection to an on-line database can be attempted, so that the databasecan be interrogated to determine whether a server containing contentassociated with the DVD disk is available. If such content is available,an interactive experience similar to that available on ITX disk can beoffered to the user of the device. When the device is in “play” mode,then ITX disk can display an icon, to signify that ITX content isavailable from the DVD disks ROM area. If the user selects the icon, acontent home page is displayed, i.e., default.htm, so that the user canswitch to ITX mode.

With reference to FIG. 3, a process 300 for obtaining update informationis described. The process 300 begins with a decision step 302 wherein adetermination is made as to whether the user is online and whether theuser prefers to check for updates online. If the answer to decision step302 is no, then in another decision step 304 a determination is made asto whether HTML update information is available. If such information isavailable then in an operation 306, the ITX.HTM is started from the weband the update information is retrieved. If the answer to question 302or both questions 302 and 304 are no, then in yet another decision step308 a determination is made whether a platform directory exists, theplatform directory applicable to the platform of the user device. If anappropriate platform directory does exist, then in an operation 310,ITX.HTM is started in the platform directory. If an appropriate platformdirectory does not exist, then in a decision step 312 a determination ismade as to whether a common directory exists which can be used with theplatform of the user device. If such a common directory does exist, thenITX.HTM is started in that directory. If such a common platformdirectory does not exist, then in a step 316 the DVD is played a normalvideo without Internet enhancement.

It is recommended that each player have a user setup that allows the ITXfunctionality to be overridden, such as:

-   -   Check for ITX and start as ITX if found (default setting)    -   Check for ITX and give the user a menu choice of ITX or Standard    -   Show the ITX icon on the screen for several seconds when ITX is        found (include a remote control function that re-starts discs in        ITX mode    -   Play all discs as DVD-Video, ignoring ITX

ITX Programming Interface (Mandatory Compliance):

This section describes the ITX application programming interface (API)for controlling and scripting ITX-enhanced discs. The API is dividedinto five sections:

-   -   Embedding. Syntax for embedding DVD-Video within a web page.        This section also addresses displaying video full screen and in        a window.    -   Commands. Commands control the playback and search mechanisms of        a DVD-Video disc.    -   Properties. Properties are used to query attributes of the        DVD-Video and set certain configuration properties.    -   Events. Events are used to trigger notification of various        playback conditions, such as time changes, title changes and UOP        changes. Events are essential for scripting and synchronizing        the video with other assets.        Embedding:

This section describes how to embed DVD-Video within an HTML page andcontrol its layout.

Computer operating systems shall embed DVD-Video using currentlyavailable embedding techniques. Examples for each of the major computeroperating systems is are provided below: Operating System ExampleWindows <object ID=“PCFriendly”  CLASSID=“clsid: A0739DE5-571F-11D2-A031-0060977F760C”  BORDER=“1” WIDTH=50% HEIGHT=60% > </object>Apple/Macintosh <embed ID=”PCFriendly”  TYPE=”application/x-pcfriendly-plugin”  ALT=”PCFriendly Plug In”  HIDDEN=”TRUE” > </embed> Linux TBDOthers TBD

Examples for Embedding DVD-Video in HTML

After the DVD-Video object is embedded in the web page, it can beaccessed using any style sheet, link, or scripting language. Values forthe ID string must begin with a letter (A-Z or a-z) and may be followedby any number of letters, digits, hyphens, and periods up to a maximumof 48.

Unlike computers, set-top boxes do not generally have a full-blownoperating system and browser. Therefore, the capabilities within thebrowser are often more restricted. For embedding DVD-Video within theseplatforms using ITX, the “PCFriendly” ID must be integrated within theembedded browser as any other tag structure. With this approach, anyembedded browser that encounters the “PCFriendly” tag, wouldautomatically associate this identifier with the ITX programming APIdescribed later in this section.

While many possible windows configurations are possible for displayingthe update data, the update data is preferably provided on a screen inthe following manner:

-   -   Toggling between full screen    -   Displaying within frame    -   Dynamic resizing        Commands:

Commands (also known as functions or methods in OOP terminology) controlthe playback and navigation mechanisms of a DVD-Video/Audio or CD-DAdisc. Commands can be used by the calling application (HTML, C++, orother) to initiate a DVD/CD playback function. The commands supported byITX are listed below.

-   -   All commands support return values as shown above.    -   See notes at the end of the table and for a description of the        optional time and FX parameters designated by [*].

Items in square brackets [ ] are optional. DVD CD- Support ITX CommandsDescription Player DA Level Range Open(filename Opens specified Both YBase — | type) file name. See note 1. Play([*]) Start playback of Both YBase — the DVD. Pause([*]) Pause playback of Both Y Base — the DVD(Pause_On). Subsequent issue of Pause( ) resumes playback (Pause_Off)Stop([*]) Stop playback of Both Y Base — the current DVD. Stopsexecution of current PGC and transfers to Stop State.FastForward([x[,*]]) Fast forward the Both Base 2-99, current DVD at xalthough speed. (By some default, x = 2) players may allow only the DVDvalues of 2, 4, 8, 1 6, 32 Rewind([x[,*]]) Rewind the current Both Basesame as DVD at x speed. above (By default, x = 2) Slow([x[,*]]) Play thecurrent Both Adv 2-99 DVD at x speed. (reciprocal (By default, x = 2values) for ½ speed). Supported Features should be checked first todetermine if capability is supported. See note 2. SlowReverse(x[,*])Play the current Both Adv same as DVD at x speed in above reverse. (Bydefault, x = 2 for ½ speed). Supported Features should be checked firstto determine if capability is supported. See note 2. Step([n[, *]])Steps playback of Both Adv 1-30 the DVD forward n frames. SupportedFeatures should be checked first to determine if capability issupported. By default, n = 1. NextChapter([*]) Halts playback of VideoBase — the current chapter and starts playback from the next chapterwithin the title. PrevChapter([*]) Halts playback of Video Base — thecurrent chapter and starts playback from the start of the currentchapter; or if near the start of a chapter goes to the previous chapter.NextTrack( ) Halts playback of Audio Y Base — the current track andstarts playback from the next track in the same Audio Title within theTitle Group. PrevTrack( ) Halts playback of Audio Y Base — the currenttrack and starts playback from the previous track in the same AudioTitle within the Title Group. NextDisplay([*]) Presents the next AudioBase — visual display/slide in the display list to the user.PrevDisplay([*]) Presents the Audio Base — previous visual display/slidein the display list to the user. TitlePlay(t[,*]) Start playback atVideo Base 1-99 the specified title index, t. (Initializes all GPRMs andSPRMs). ChapterPlay(t,c[,*]) Start playback at Video Base t: 1-99 thespecified c: 1-99 title index and chapter value. If in TT_DOM andalready within specified title, ChapterSearch is issued to maintain allGPRM and SPRM values. Otherwise, ChapterPlay is issued and all GPRMs andSPRMs are initialized. TimePlay(h,m,s,f[,*]) Start playback at Both Baseh: 00-23 the specified. m: 00-59 Specify time in s: 00-59 hours,minutes, f: 00-29 seconds, frames. (Computer must translate intomilliseconds). If in TT_DOM or TT_GR_DOM and already within specifiedtitle, TimeSearch is issued to maintain all GPRM and SPRM values.Otherwise, TimePlay is issued and all GPRMs and SPRMs are initialized.TitleGroupPlay(g[,*]) Start playback at Audio Base g: tbd the specifiedtitle group number. TrackPlay(g,t[,*]) Start playback at Audio Y Base g:tbd the specified t: tbd title group number and track number. If inTT_GR_DOM and already within specified title group, TrackSearch isissued to maintain all GPRM and SPRM values. Otherwise, TrackPlay isissued and all GPRMs and SPRMs are initialized. In case of CD-DA, groupnumber should be 1 by default. HiddenGroupPlay(g[,*]) Plays desiredAudio Adv g: tbd hidden/locked group. HiddenTrackPlay(g,t[,*]) Playsdesired Audio Adv g: tbd hidden/locked t: tbd track within Hidden Group.HiddenTimePlay(h,m,s[,*]) Plays from Audio Adv h: 00-23 specific timewithin Hidden m: 00-59 Group. s: 00-59 Menu(x[,*]) Display the Both Base1-5 specified menu. See note 3. GotoMenuID(x[,*]) Displays menu Both Adv— associated with entered menu ID GotoBookMark(x[,*]) Continues playbackBoth Y Adv — at the specified bookmark location by number. See note 4.SaveBookMark(x[,*]) Creates a bookmark Both Y Adv 0-n at the current nis location to store system with a given dependent, number. about Seenote 4. 32 Resume([*]) Resume DVD Both Base — playback (if applicablebased on Navigation). StillOff([*]) Continue with Both Base — still off.UOPMask( ) Retrieve current Video Base — UOPs. AutoMouseHide(b) Show orhide the Both Adv mouse cursor when the DVD is playing. (Hide occurs 2seconds after no activity) UpButtonSelect([n]) Selects the up Both Base1-36 direction button n times. By default n = 1. DownButtonSelect([n])Selects the down Both Base 1-36 direction n times. By default n = 1.LeftButtonSelect([n]) Selects the left Both Base 1-36 direction button ntimes. By default n = 1. RightButtonSelect([n]) Selects the right BothBase 1-36 direction button n times. By default n = 1. ButtonActivate( )Activate the Both Base — current highlighted button. ButtonSelectActivate the Both Base 1-36 And specified Activate(n) highlightedbutton, where n is the button number between 1 and 36. AudioSelect(n)Sets the stream Both Base 1-8 number of the Audio to playSubPictureSelect(n) Sets the stream Video Base 1-32 number of theSubpicture to display SubPictureEnable(n) Enables or Video Base 0 = offDisables 1 = on Subpictures (sub titles) AngleSelect(n) Sets the streamVideo Base 1-8 number of the Angle to play MenuLanguage Selects the BothBase 1-tbd Select(n) language for the System Menu according to thelanguage code (n). Only available in a Stop State. TextLanguage Selectsthe Audio Base 1-tbd Select(n) language for the Audio Text Data.ParentalLevel Selects parental Video Base 1-8 Select(n) level of player.ParentalCountry Selects the Video Base 1-tbd Select(n) country for theparental level. KaraokeSelect(x) Changes the Audio Video Adv 1: mode forKaraoke. vocalist 1 2: vocalist 2 3: guide melody Zoom([x, y[,*]]) Zoom(or scale) by Both Adv 2500-40000 a percentage (16-bit factor of xunsigned (horizontal) and y values) (vertical). Individual players maysupport various zoom ranges, but 25% to 400% is recommended (2500 < x, y< 40000). See note 5. X and Y are integers, 100 times the percentage. Bydefault, x and y are 10000 (100%). Pan([x,y[,*]]) Set center point BothAdv −5000 of zoomed display to to x, y coordinates +5000 based onpercentage of normal content full screen display. See note 5. X and Yare integers, 100 times the percentage. By default, x and y are zero(center point). VideoBlending([a,c[,*]]) Controls whether Both Adv a:0-255 the video is c: 32- played in its own bit window/full screen ARGB(a = 0) or if the video is in the background and HTML content is blendedon top of it (where a is the alpha blending value from 1 to 255; c isHTML the HTML background color that is clear). By default, a = 255 (HTMLon top) and c = white (white HTML background is clear for video to showthrough). See note 6. Bitmap Layer Extensions CreateLayer(b,c,r,d,p)Create an overlay Both Y Adv b: 1-9 layer c: 32- b is the bitmap bitoverlay ref number ARGB (or handle) r: 1-4 Initialize to d: 1, color c2, 4, r is the 8, 15, resolution 16, 24, d is the number of 32 bits perpixel. p p: is the palette palette when b = 1, 2, 4 or 8 tbl See note 7.ChangePalette(b,p[,*]) Change the palette Both Y Adv b: 1-9 for layer bp: palette tbl DestroyLayer(b) Destroy an overlay Both Y Adv 1-9 layer.If b = 0 then destroy all layers. ShowLayer(b[,*]) Make a layer Both YAdv 1-9 visible HideLayer(b[,*]) Hide a layer Both Y Adv 1-9SetVectorDraw(b,c,w[,*]) Set default Both Y Adv b: 1-9 drawing color (c)c: 32- and width (w) for bit layer b. ARGB or c: ARGB or index paletteinto palette index w: 1 to 16 pixels w: 1-16SetVectorCorners(x1,y1,x2,y2) Set the user x: 0-720 coordinate system(or to: x1, y1 (upper 1920) left corner); y: 0-480, x2, y2 (lower right576 (or corner). 1080) The default is 0, 0..720, 480 for NTSC and 0,0..720 576 for PAL; which matches one to one to pixels in the layer.(All values are 16-bit signed integers) This coordinate system is usedfor VectorMove and VectorDraw VectorMove(x Move to x, y on,y,b[,*]) BothY Adv x: 0-720 layer b. (or (x, y based on 1920) SetVectorCorners) y:0-480, 576 (or 1080) b: 1-9 VectorDraw(x,y,b[,*]) Draw to x, y on Both YAdv x: 0-720 layer b. (or (x, y based on 1920) SetVectorCorners) y:0-480, 576 (or 1080) b: 1-9 DisplayImage(f, b,a[,*]) Display image fromBoth Y Adv f: file (types: JPEG, filename Gif) in layer b, b: 1-9 withalpha blend a: 0-255 level a. (Layer must have sufficient bit depth.)Time and FX SetRelTime([t]) Set the relative Both Y Base t: 0-2³¹ timecounter to t. unsigned (unsigned 32-bit 32- integer in ms) bit SeeGetRelTime integer property. The relative time affects only commandsissued for delayed execution (queued). Once queued commands use machineabsolute time. By default, t = 0. FlushCmdQueue( ) Flush and/or Both YBase initialize the command queue. Misc Extensions SetMixVolume(x[,*]Set primary audio Both Y Adv x: 0-100 stream volume 0 = mute level tomain percentage x to audio allow overmixing. FullScreen(w[,*]) Togglesvideo Both Base 0 = full playback between 1 = window full screen andwindow. NetConnect([u[,*]]) Establish WWW Both Y Adv u = text connectionto string optional URL provided. By default, connection is made with noURL. Computer The following — Only: commands should be ignored inset-top players Close( ) Close the driver Both Y Base — and stopplayback of the current DVD. ShowControls(x,y[,*]) Show or hide the BothY Base x: 0-1920 video controls in y: 0-1200 full screen mode, at x, y.Use −1,−1 to hide. ShowContextMenu( ) Controls the right Both Base —mouse click context menu. PopUpMenu( ) Displays and Both Base — allowsthe audio languages, sub- pictures, and angles to be set to thosecurrently available. SuppressErrors(b) Suppresses display Both Y Base 0= suppress of error messages 1 = show (0 = suppress display of errormessages, 1 = display error messages)

ITX Command Summary

Command Notes:

[*] optional parameters

-   -   Special effects and timed operations are performed with four        optional parameters. See section 2.1.2.2.3 for complete details.        1. Open.

Opening of VOB files and MPEG files is required for baseline support.Other file types are advanced features. An open file can be played,paused, stopped. Fast forward and rewind are not available. Stoppingcauses the file pointer to be reset to the start of the file.

2. Slow and Slow Reverse.

If slow is supported a speed of ½ is required. Other slow speeds mayalso be supported; decreasing powers of two are recommended: ¼, ⅛, 1/16,etc although any value from ½ to 1/99 is allowed. Integer reciprocalvalues are used for the speeds, such as 2 for ½ and 4 for ¼, etc.

3. Menu.

Menu choices are:

-   -   1: Title Menu    -   2: Root Menu    -   3: Chapter Menu    -   4: Audio Languages Menu    -   5: Subpicture Languages Menu        4. Bookmarks.

The bookmarks are assigned a number when set. A GotoBookMark returns tothe same position on the disc as when the bookmark was set (saved).Preservation of bookmarks during powerdown is not required, however, ifimplemented, bookmarks shall be unique to the disc (using a generateddisc id). A minimum of one bookmark per disc is required if implemented(32 recommended). It is recommended that bookmarks save the entireDVD-Video or DVD-Audio state, but this is not required. At a minimum,the correct title and time must be saved.

5. Zoom and Pan.

Zoom parameters are based on a percentage, so integer values of 10000and 10000 (x and y) indicate 100% of normal full screen display with nozoom. Normally the x and y scale factors should be the same to maintaina correct aspect ratio. When zooming to a value greater than 100%, bydefault, the center point of the image remains on the center of thedisplay. Panning allows moving the center point of the portion of theimage to be displayed. These x and y pan parameters are provided as apercentage of the display from −50% to +50% using integer values from−5000 to +5000. (This is done so that the differences between NTSC andPAL do not have to be calculated in pixels. Additionally, it may also bepossible to use the same HTML code for handling 4:3 and 16:9 as well.)If the pan parameters would cause the display to pan off the edge of thevideo, then the platform software shall only set that panning parameterto the largest or smallest value that keeps the video in the displayarea.

6. Blending.

This advanced feature allows an HTML page to be constructed thatincludes a background color (the colorkey) that is treated as clear.Other information on the page (graphics or text) is then alpha blendedwith the video. An alpha value of 0 indicates that the video showseverywhere. An alpha value of 255 indicates that the HTML page showseverywhere (except where it is clear as defined by the colorkey value).This allows, for example, placing textual titles on top of the video (orblended with the video). Graphical menus can be added in the samemanner. A minimum of 16 (256 recommended) discreet alpha values arerequired if this feature is supported. However, the alpha blendparameter is always from 0 to 255.

7. Bitmap Layers.

The bitmap layer features allow defining and using multiple layers(possibly only one active at a time depending on the playback device)with other layers stored in memory and ready to be activated whenneeded. This is how an event moderator can remotely draw onto the videoimage. The number of bits per pixel (color depth) can be 1, 2, 4, 8, 15,16, 24 or 32. For bpp of 1, 2, 4 and 8 a palette must be provided(32-bit ARGB data). It is anticipated that the most frequently usedcapability will be bpp values of 1 or 2 to be used for image markup,like a chalkboard with 1 to 4 colors. Bpp values of 15, 16, 24 and 32allow images to be used on a layer.

Errors and Warnings

All commands shall return one of the following error codes number namedescription commands 0 OK Successful all 1 General Other or Unknownerror all Error condition 1 FileNot File not found Open, FoundDisplayImage 2 NotSupported File type or feature not supported 3 NoDiscAttempt to play with no Play, +others? disc 4 BadParam Parameter out ofrange many 5 ParamError Parameter out of range many for current disc orcurrent condition 6 NoMem Not enough memory for CreateLayer, operationDisplayImage 7 QueueFull Command queue is full Time delayed command 8QueueFail Timed command error Time delayed (such as overlapping commandcommand) 9 QueueWarn Timed command accepted, Time delayed but action maybe command emulated

Error and Warning Summary

Layers and Pixel Formats:

With reference to FIG. 4, a data layout 400 for a layer with 2 bpp,resolution is depicted. Also depicted is a data layout 402 for a layerwith a 4 bpp resolution. The pixel formats for data in a layer may bestored (internally) in any format. The diagrams on the next pageillustrate how it might work in one implementation. The data in the LUT(lookup table) is provided as a color palette by CreateLayer( ) orChangePalette( ). Each entry in the palette is a 32-bit integer asfollows:

-   -   byte 0: blue (least significant byte)    -   byte 1: green    -   byte 2: red    -   byte 3: alpha

An alpha value of 0 indicates a transparent color (i.e. the video showsthrough) and 255 is a solid opaque color (i.e. no video shows through).The first entry in every color palette should consist of 4 bytes ofzero, a clear color. The default color value, c, in CreateLayer( )should normally be zero to initialize the layer to a clear color.Special visual effects can be created by use of other values, such asinitializing a layer to red, then erasing it off with a series ofdrawing commands and/or by changing alpha values, in the color palette,etc. Layers and data on them are not affected by video transitions andspecial effects having to do with video playback.

As described in the next section, some commands may be modified withtime parameters and special effects or transitions. Of particular noteto the bitmap layer commands are the ChangePalette( ) and VectorDraw( )commands. A VectorDraw( ) command with a time duration simply draws aline incrementally. However, the ChangePalette( ) command with a timeduration should be implemented such that there are three completepalettes, the original, the final and the current palette. At each timeincrement every palette table entry is interpolated towards its finalvalue. The ShowLayer( ) and HideLayer( ) commands may have a timedspecial effect applied to them such as a wipe or fade.

Transitions, Special Effects and Timing:

Similar to how an author might use transitions and special effectsduring video editing, ITX allows a subset of these types ofcapabilities, depending on the unique capabilities of each playbacksystem. If a system cannot produce the effect due to hardware orsoftware limitations then it should gracefully degrade to some emulationor simply produce no effect at all, but concluding at the same logicalend point.

Transitions can be used, for example, when switching from one scene toanother with a time search or chapter search. If no effect is specified,then the playback system would normally produce a standard cut orpossibly insert black frames between the scenes. However, if a wipe leftis specified, then the final still frame of scene 1 is shown and scene 2wipes in from the left at the specified rate. (No attempt is made toprovide a moving image for both scenes simultaneously.)

The following table details the optional parameters and their ranges:Description range xxx(?[t1,t2,fx,p]) Command xxx with optional t1: 0-2³¹see command list parameters as follows: t2: 0-2³¹ in 2.1.2.2 where t1:time 1 (0 or relative fx: 0-999 [*] is replaced by start time) p: 32-bit[t1,t2,fx,p] t2: time 2 (duration (if value t1=0) or relative end time)based on x fx: special effect number all p: extra parameter based onunsigned fx 32-bit There are two basic modes: integers 1. If t1=0, thent2 is the command duration. 2. If t1>0, then t1=starting relative timeand t2=ending relative time. t1 and t2 are unsigned 32- bit integers inmilliseconds. The possible choices for the variable numbers ofparameters are: t1 (not allowed) t1, t2 t1, t2, fx t1, t2, fx, p

Optional Parameter Format for Timed Commands and Special Effects

Notes:

1. Immediate Execution

To cause a timed command or special effect to start immediately, the t1parameter must be set to zero (or to a value less than the currentrelative time). The t2 parameter contains the duration of the command(when t1=0). If t1 is greater than zero, but less than the currentrelative time then the duration is equal to t2-t1. A negative durationis treated as the shortest possible time for that operation.

2. Delayed Execution

To cause a command to be queued for later execution, the t1 parametermust be set to a non-zero value greater than the current relative time.To accomplish this the current relative time can be queried via theGetRelTime property. Alternatively, the relative time can be set usingthe SetRelTime command. Once a command has been queued, the player shallconvert the relative time to an absolute time for its scheduledexecution and cannot be changed. (However, the command queue can beflushed.)

3. SpecialFX.

Any immediate or delayed execution command can have a special effect ortransition (with optioannl parameter) added to modify its operation. Allspecial effects and transitions must be accepted by all players but maybe emulated or ignored if the effect cannot be performed. The same istrue of the timed nature of various commands—if a player has a fixedduration for executing a particular command, then the requested durationis ignored.

4. Command Macros

Macros of commands can be created by using the SetRelTime and thenissuing various commands based with offsets from that time.

5. Command Queue

The player must support a command queue with a depth of at least twoitems (eight is recommended; PC/Mac: 64 is recommended). That is, twoitems are pending execution at a later time while further commandscontinue to execute. If a command is accepted for the queue, then itmust be executed (unless flushed or some other operation negates oroverrides its action). Times stored in the queue should be in anabsolute machine time (not relative time and not DVD playback time) sothat subsequent changes to the relative time do not affect commandsalready queued.

6. Conflicting Commands

Because it is possible to schedule commands that have overlapping times,these must be checked prior to acceptance for the queue.Non-conflicting, overlapping operation can be accepted. Conflictingoverlapping operations may be accepted also if the operations can stillbe logically completed. Conflicting overlapping operations that areaccepted shall return a warning code. An example of a conflictingoperation would be to schedule a chapter advance with a 5 second fade inand a second chapter advance after only 2 seconds. Robust internallyinterlocks must be used if there is any chance of an erroneous programto lock up a machine due to the use of timed or delayed executioncommands. A fallback to basic sequential operation is suggested.

Exemplary transitions and special effects according to an embodiment ofthe invention include the following. num name description parameters  0none standard cut, no effect none  1 dissolve old scene dissolves away,none new scene appears  2 fade old fades to color, new color: 32-bitscene fades in ARGB  3 wipe old scene is wiped off LRTB revealing newscene  4 reveal old scene is pulled off, LRTB revealing new scene  5slide new scene slides on, LRTB covering old scene  6 push new scenepushes old scene LRTB off  7 peal old scene is peeled off LFTB (like awipe, but 3D)  8 corner wipe from a corner ULURLLLR wipe  9 cornerreveal from a corner ULURLLLR reveal  10 corner slide from a cornerULURLLLR slide  11 corner peel from a corner ULURLLLR peal  12 randomrandom boxes poke holes in box size in boxes old scene revealing newpixels scene  13 blinds horiz or vert blinds wipe blind size in offrevealing new scene pixels 14-99 reserved for other transitions 100 nonestandard video and audio none 101 YUV adjustments are made to luma byte0: V and chroma byte 1: U byte 2: Y byte 3: reserved 0 (signed byteadjustments) 102 snow snow is added to the display 0 = none 255 =maximum 103 ripple video is played like 0 = none underwater 255 =maximum 104-999 reserved 1000 assignable for specific and system effectsupNotes:LRTB: 1 = left, 2 = right, 3 = top, 4 = bottomULURLLLR: 1 = upper left, 2 = upper right, 3 = lower left, 4 = lowerright

List of Transitions and Special Effects

Notes:

LRTB: 1=left, 2=right, 3=top, 4=bottom

ULURLLLR: 1=upper left, 2=upper right, 3=lower left, 4=lower right

All transitions and/or effects do not make sense with each command. Theguiding philosophy should be to implement only those that make sense.The following table is the recommended set features for the mostadvanced playback systems with Y₁ being the most basic to Y₄ the mostadvanced. time delayed time effect/tr ITX Command (queued) durationansition ChangePalette Y₁ Y₄ (b,p[,*]) ChapterPlay(t, Y₁ Y₂ Y₂ c[,*])DisplayImage(f, Y₁ Y₃ Y₃ b, a[,*]) FastForward([ Y₁ Y₂ Y₂ x[,*]])FullScreen(w[,*]) Y₁ Y₃ GotoBookMark(x[,*]) Y₁ GotoMenuID(x[,*]) Y₁ Y₂Y₂ HiddenGroupPlay Y₁ (g[,*]) HiddenTimePlay Y₁ (h,m,s[,*])HiddenTrackPlay Y₁ (g,t[,*]) HideLayer(b[,*]) Y₁ Y₃ Y₃ Menu(x[,*]) Y₁ Y₂Y₂ NetConnect([u Y₂ [,*]]) NextChapter([*]) Y₁ Y₂ Y₂ NextDisplay([*]) Y₁Y₂ Y₂ Pan([x,y[,*]]) Y₁ Y₂ Pause([*]) Y₁ Y₂ Y₂ Play([*]) Y₁ Y₂ Y₂PrevChapter([*]) Y₁ Y₂ Y₂ PrevDisplay([*]) Y₁ Y₂ Y₂ Resume([*]) Y₁ Y₂ Y₂Rewind([x[,*]]) Y₁ Y₂ Y₂ SaveBookMark( Y₁ x[,*]) SetMixVolume( Y₁ x[,*])SetVectorDraw Y₁ (b,c,w[,*]) ShowControls(x, Y₁ Y₃ Y₃ y[,*])ShowLayer(b[,*]) Y₁ Y₃ Y₃ Slow([x[,*]]) Y₁ Y₂ Y₂ SlowReverse(x Y₁ Y₂ Y₂[,*]) Step([n[,*]]) Y₁ StillOff([*]) Y₁ Stop([*]) Y₁ Y₂ Y₂ TimePlay(h,m,Y₁ Y₂ Y₂ s,f[,*]) TitleGroupPlay Y₁ (g[,*]) TitlePlay(t[,*]) Y₁ Y₂ Y₃TrackPlay(g,t Y₁ [,*]) VectorDraw(x, Y₁ Y₃ y,b[,*]) VectorMove(x, Y₁ Y₃y,b[,*]) VideoBlending Y₁ Y₂ ([a,c[,*]]) Zoom([x,y[,*]]) Y₁ Y₂

Recommended Commands and Special Effects Matchups

ITX Events

Events are integral to synchronizing DVD-Video with other media. Withthese events, web pages can be synchronized with the audio or video. Forexample, each ChapterEvent (start of new chapter) can change an HTMLstoryboard that corresponds to the movie. Time events can be used tocoordinate advertising messages in HTML while the video is playing: whenJames Bond is driving his BMW, an appropriate web page (BMW or autosales site) can automatically be displayed at the same time.

The value of events is that these external media do NOT have to beembedded or even be known at the time the DVD-Video is authored. Thisflexibility keeps DVD-Video authoring on schedule and greatly minimizesthe authoring costs while adding valuable and unique features to eachdisc.

Events can be used by the calling application (HTML, C++, or other) toreceive notification of DVD playback status. If a platform does notsupport an event, then an error code must be returned when its use isattempted. Supported events are: Sup- CD- port ITX Events Description DALevel Range TitleEvent(t) Called when title Base 1-99 changes. Returnsthe new title number in t. ChapterEvent(c) Called when chapter Base 1-99changes. Returns the new chapter number in c. TitleGroupEvent Calledwhen title Base 1-tbd (g) group changes. Returns the new title groupnumber in g. TrackEvent(t) Called when the track Y Base 1-tbd changes.Returns the new track number in t. TimeEvent(e,t) Called on time change.Base e: 1-2³¹ Returns elapsed time t: 1-2³¹ in e and total time in (˜2²⁴t. Both in is milliseconds. practical limit DisplayChange(x) Called whenBase tbd slide/display list changes. Returns slide number in x.AngleEvent(x) Called on angle Base 1-9 change. Returns new angle numberin x. StateEvent(x) Called when play state Base 0-6 changes (i.e., playto pause). Returns state in x. See CurrentState property for values.SpeedEvent(x) Called when speed Base 1-32 changes (i.e., play toscanning). Returns new speed in x. UOPSEvent(n) Called when any UOP Base32 changes. Returns 16-bit UOPs array in n. values DomainEvent(x) Calledwhen domain Base changes. Returns domain in x. MenuEvent(x) Called whenmenu ID Adv changes. Returns the ID of the new menu in x.MenuButtonEvent Called when user Adv 1-32 (x) clicks a button on a menu.Returns the ID of the button selected in x. MouseEvent(b,x,y) Calledwhen the user Adv b: tbd clicks either the left x: 0-720 or right mousebutton. y: 0-480 Returns mouse button or in b, x coordinate in 576 x,and y coordinate in y. AudioEvent(x) Called when user Y Base 1-tbdchanges audio track. Returns audio number in x. SubpictureEvent Calledwhen user Base 1-32 (x) changes subpicture track. Returns subpicturenumber in x. AngleEvent(c,m) Called when user Base c: 1-9 changes videoangle. m: 1-9 Returns current angle number in c and total number ofangles in m MenuLanguageEvent Called when user Base 1-tbd (x) changesmenu language. Returns menu language number in x. TextLanguageEventCalled when user Base 1-tbd (x) changes text language. Returns textlanguage number in x. VideoErrorEvent Called when an error Base tbd (n)occurs. Returns error number in n. ParentalEvent(p,c) Called whenparental Adv p: 1-8 control changes. c: tbd Returns level in p andcountry in c. KaraokeEvent(b) Called when karaoke Adv 0-1 event changes.Returns 1 if karaoke track has begun playing, 0 if just finished.EjectEvent( ) Called when disc is Y Base — ejected from device. Noreturn value. InsertEvent( ) Called when disc is Y Base — inserted intodevice. No return value.

ITX Events Summary

ITX Properties

Properties can be used to find information about commonly usedvariables; such as time, title and chapter. All properties must besupported even if the advanced feature itself is not supported.Non-supported features may return a reasonable default value (forexample if the zoom feature is not supported the zoom properties shouldalways return 10000.) If a feature is not supportable and there is noreasonable value, then a −1 should be returned.

The following properties are supported: CD Support ITX PropertyDescription DA Level Range CurrentElapsed Elapsed time of Y Base 0-2³¹Time current title (in milliseconds) CurrentTotalTime Total time ofcurrent Base 0-2³¹ title (in milliseconds) CurrentTitle Currentlyplaying Base 0-99 title CurrentTitleGroup Currently playing Base 0-99title group CurrentChapter Currently playing Base 0-99 chapterCurrentTrack Currently playing Y Base 0-99 track CurrentDisplayCurrently playing Base 0-99 display list item CurrentState Current playstate Y Base 0-6 (0=None, 1=Scanning, 2=Stop, 3=Pause, 4=Play, 5=SlowPlay, 6=Menu) CurrentDomain Current domain Base tbd CurrentAudio Currentaudio track Y Base 0-99 CurrentSubpicture Current sub picture Base 0-31track CurrentAngle Current video angle Base 1-9 CurrentMenuLang Currentmenu language Base 1-8 NumAudio Number of audio Base 1-8languages/tracks currently available NumSubpicture Number of subpicturesBase 0-31 currently available NumAngles Number of angles Base 1-9currently available NumMenuLang Number of menu Base 1-8 languagesavailable GetAudioLanguage Returns audio language Base 0-99 (x) (andextensions) for specified audio number x. Returned audio language is the2- digit locale. GetSubpictureLanguage Returns subpiucture Base 0-99 (x)language (and extensions) for specified subpicture number x. Returnedsubpicture language is the 2-digit locale. GetMenuLanguage Returns menufor Base 0-99 (x) specified menu number x. Returned menu language is the2- digit locale. SupportedFeatures Returns feature bits Y Base 32-bitcorresponding to mask capabilities of current system (Must be availablebefore the navigator is in the play state). See section 4.1 and 4.2 fordetails. Version Returns version of Y Base Two platform. This field16-bit can also be used to integers determine parsing of certaincomponents in the SupportedFeatures property. Returns major version andminor version unique to each playback system. CurrentZoomX Current ZoomX value Base Unsigned 16-bit CurrentZoomY Current Zoom Y value BaseUnsigned 16-bit CurrentPanX Current Pan X value Base Unsigned 16-bitCurrentPanY Current Pan Y value Base Unsigned 16-bit CurrentMenuIDCurrent ID associated Base 0-99 with currently selected menu NumLayersNumber of overlay Y Base 0-9 layers currently possible (based on memoryavailable at resolution 1, bpp = 1) See note 8. MaxLayers Maximum numberof Y Base 0-9 simultaneous overlay layers supported See note 8. MaxAlphaMaximum number of Y Base 16, alpha blending steps 32, supported. (i.e.DVD 64, subpictures requires 128, 16 levels but hardware 256 may support256 levels). MaxFast Maximum number of fast Base 0-99 speeds.MaxFastReverse Maximum number of Base 0-99 reverse fast speeds. MaxSlowMaximum number of slow Base 0-99 speeds. Could be zero if not supported.MaxSlowReverse Maximum number of Base 0-99 reverse slow speeds. Could bezero if not supported. MaxCmdQueue Maximum size of the Y Base 0-255command queue MaxBookmarks(x) Maximum number of Y Base Unsignedbookmarks based on x: 16-bit 1: total in volatile memory 2: total innon- volatile memory 3: per disc in volatile memory 4: per disc in non-volatile memory NumBookmarks(x) Number of bookmarks Y Base Unsignedavailable based on x. 16-bit (same as above) GetRelTime Gets therelative time Y Base 0-2³¹ counter. CurrentCmdQueue Current number of YBase 0-255 empty slots in the command queue GetDiscType Gets the currentdisc Y Base 0-2¹⁶ type and sub-type. low 8 types: bits 0 = drive emptyor is an unknown state integer 1 = DVD type; 2 = CD audio high 8 3 =other bits 4-255 = reserved are sub-types for DVD (bit bit fields):fields 0 = DVD-Video 1 = DVD-Audio 2 = DVD-ROM material present 3 =PCFriendly 4 = ITX 5-7 = reserved See section 2.1.2.4.1 for detailsQueryNet Gets Internet Y Base 0-9 connection status 0 = not available,ever 1 = not currently avail 2 = available, not online 3 = online, speedunknown 4 = up to 23.8K 5 = up to 56K 6 = up to 128K 7 = up to 1.5M 8 =up to 10M 9 = >10M

ITX Properties Summary

Notes:

8. Layer Properties.

The MaxLayers property is how many simultaneous overlay layers thehardware can process or the software/hardware system can effectivelyemulate as simultaneous overlays in real time and blend with a fullscreen video. The NumLayers property returns the number of layers thatcan be created (but not necessarily used simultaneously) based on theamount of free memory currently available.

The concept of layer resolution is that a 720×480 image requires somenumber of bytes of data (depending on the bpp) at a resolution of 1. Aresolution of 2 uses one data item for a 2×2 pixel area of the image(i.e. 4× less data). This allows a layer to be defined for markup thatdoesn't need high accuracy and/or a method for a platform to performgraceful degradation if not enough memory is available for a fullresolution layer. Resolution 3 is a 3×3 pixel area, and is somewhatawkward. Resolution 4 is a 4×4 pixel area. No other resolutions aredefined.

Disc Type Detection

The GetDiscType property requires that the type of disc in the player beavailable to the application. A disc may be only one of the followingtypes:

-   -   0: drive empty or unknown state    -   1: DVD    -   2: CD    -   3: other

For a DVD disc, any number of the DVD sub-types may be detected and havetheir respective bits set as follows: Bit number Description Detectionmethod 0 DVD-Video VIDEO_TS\VIDEO_TS.IFO file present 1 DVD-AudioAUDIO_TS\AUDIO_TS.IFO file present 2 DVD-ROM Any file in the mainmaterial directory other than present VIDEO_TS and AUDIO_TS directories3 PCFriendly DISC.ID file present 4 ITX ITX.HTM file present 5-7reserved N/A

Disc Sub-Types Bit Fields

Browser Requirements

Web browsers and the software environment on each platform shall becapable of the following Support Feature Level ITX features in para2.1.2.2-2.1.2.4 Base/Adv Presentation layer must properly Base interpretHTML with embedded video HTML version 4.0 Base JavaScript version 1.2Base Platform determination Base (navigator.platform) Languagedetermination Base (navigator.language) JavaScript handlers for MethodsBase Properties Base Events Base Graphic support (JPG, GIF) Base Graphicsupport (BMP) Adv Animated GIF support Adv XML Adv Java support AdvStreaming media support Adv Macromedia Flash Base/Adv MacromediaShockwave Adv QuickTime Adv Interfaces to common hardware features Base(ID, cookie, etc.)

Browser Requirements Summary

HTTP Header Formatting (Base)

Each HTTP header should be formatted with the following information (inaddition to standard HTTP header information:

-   -   Language    -   Screen resolution    -   Hardware platform identifier and version    -   Browser identifier and version        Cookies (Base)

Browser must be able to support cookie mechanism, which of course placesa memory requirement on the hardware device. Cookie shall be placed bybrowser in local persistent memory and shall be readable only by aspecific server and browser/hardware partner. Cookie shall contain:

-   -   User/hardware ID: generated by computer software or by hardware        platform (in case of set-top)    -   Disc ID: generated by local hardware based on a hashing        algorithm.    -   BCA number: read from lead-in area of DVD

The following is matter of design choice.

-   -   Format of cookie    -   When to place cookie (i.e., insertion event)        Direct Connection to Navigator (Adv)

Ability to pass commands directly to DVD/CD navigator, such as:

-   -   All DVD/CD navigation commands    -   Additionally, must have ability to set GPRMs        Platform/Hardware Requirements

In order to provide a consistent baseline platform for ITX contentdevelopers it is important that the platform and hardware vendorsproperly support the ITX API. Not all hardware platforms will haveidentical capabilities. So it is important that each platform provideaccess to the features that are available and graceful degradation forthose that are not supported—and provide this as feedback so thatcontent developers understand how their content will function ondifferent platforms.

Baseline Hardware Platform Requirements

Hardware platform vendors must provide hardware and interfaces capableof performing all the functions specified as base above to be ITXcompatible. If the feature is not available it is important that iteither be emulated or degrade gracefully in some manner. Items marked asadvanced can be supported or not, but the Supported Features bits mustaccurately indicate what features are available.

It is expected that hardware platforms meet these minimumspecifications:

-   -   Support HTML 3.2 browser and other requirements in paragraphs        3.x

Play video full screen down to a 4:1 downscale (180×120 (NTSC), 180×144(PAL)). ITX Baseline bit Command Group Command list 0 GRP_OPENVOBOpen(filename | type) 1 GRP_TRANSPORT Play([*]) Pause([*]) Stop([*])FastForward([x[,*]]) Rewind([x[,*]]) NextChapter([*]) PrevChapter([*])Resume([*]) StillOff([*]) 2 GRP_AUDIOTRANSPORT NextTrack( ) PrevTrack( )NextDisplay([*]) PrevDisplay([*]) 3 GRP_SEARCH TitlePlay(t[,*])ChapterPlay(t,c[,*]) TimePlay(h,m,s,f[,*]) Menu(x[,*]) 4 GRP_AUDIOSEARCHTitleGroupPlay(g[,*]) TrackPlay(g,t[,*]) 5 GRP_UOP UOPMask( ) 6GRP_SELECT UpButtonSelect([n]) DownButtonselect([n])LeftButtonSelect([n]) RightButtonSelect([n]) ButtonActivate( )ButtonSelectAndActivate (n) 7 GRP_VFEATURES SubPictureSelect (n)SubPictureEnable(n) AudioSelect (n) AngleSelect (n)MenuLanguageSelect(n) ParentalLevelSelect(n) ParentalCountrySelect (n)FullScreen(w[,*]) 8 GRP_AFEATURES TextLanguageSelect(n) 9 GRP_PC Close() ShowControls(x,y[,*]) ShowContextMenu( ) PopUpMenu( ) 10 GRP_DOWNSCALE From HTML embedded object width and height parametersZoom(x,y[,*]) (downscale required for baseline; upscale is advanced)11-15 N/A reserved (must return 0)

Baseline Capabilities Grouping

Advanced Hardware Platform Requirements:

Each advanced feature requires that it be fully supported for itsfeature bit to be enabled. However, different playback systems may havediffering levels of support for some features, such as the number ofbookmarks supported or the variety of special effects supported. ITXAdvanced bit Command Group Command List 16 GRP_FILEOPEN Open(filename |type) Play files other than VOB and MPG. Audio: WAV MID Video: AVI 17GRP_ADVPLAY Slow([x[,*]]) SlowReverse([x[,*]]) Step([n[,*]]) 18GRP_HIDDEN HiddenGroupPlay(g[,*]) HiddenTrackPlay(g,t[,*])HiddenTimePlay(h,m,s[,*]) 19 GRP_MENU GotoMenuID(x[,*]) 20 GRP_BOOKMARKGotoBookMark(x[,*]) SaveBookMark(x[,*]) 21 GRP_MOUSE AutoMouseHide(b) 22GRP_KARAOKE KaraokeSelect(x) 23 GRP_ZOOMPAN Zoom([x,y[,*]])Pan([x,y[,*]]) 24 GRP_BLEND VideoBlending([a,c[,*]]) 25 GRP_LAYERCreateLayer(b,c,r,d,p) ChangePalette(b,p[,*]) DestroyLayer(b)ShowLayer(b[,*]) HideLayer(b,[,*]) DisplayImage(f,b,a[,*]) 26 GRP_DRAWSetVectorDraw(b,c,w[,*]) SetVectorCorners(x1, y1,x2,y2)VectorMove(x,y,b[,*]) VectorDraw(x,y,b[,*]) 27 GRP_AUDIOMIXSetMixVolume(x[,*]) 28 GRP_QUEUE FlushCmdQueue( ) SetRelTime([t]) alloptional timed command parameters and special effects 29 GRP_WEBNetConnect([u[,*]]) 30-31 N/A reserved (must return 0)

Advanced Capabilities Grouping

Local Storage/Memory Requirements:

The only local storage requirement of ITX is minimal memory for thepurpose of placing cookies. Optionally, the hardware platform can alsosupport larger local memory for the purposes of caching web pages. Moreinformation: TBD.

Hardware Platform Considerations

Some set-top players may not be able to access both DVD-Video and ROMcontent at the same time. The application will need to permitintelligent caching, and the platform will need to provide sufficientmemory.

Directory Structure for Current PCFriendly Client: /ROOT   PCFRIEND.EXE(WIN)   PCFRIEND (MAC)   README (MAC)   README (WIN)   /COMMON    /SETUP       LANG.INI       SETUP_EN.BMP       SETUP_JA.BMP      SETUP_FR.BMP       LIC_EN.TXT       LIC_JA.TXT       LIC_FR.TXT    /CONTENT       general content (runs on multiple platforms)   /MAC    /SETUP       PCFRIENDLY PLUG IN       FLASH 4     /CONTENT   /WIN    /SETUP       PCFRIEND.ICO       INUNINST.EXE       UPDATE.DAT    /CABINETS       MAIN.CAB       VIDEO.CAB       OTHER.CAB    /THIRDPTY   /MACROMED     SWFLASH.EXE   /MSIE     /EN     /JA

User Operation Control: DVD-Video DVD-Audio DVD-Audio + Only Only VideoFunction Menu Title Stop AMGM Title Stop AMGM Title Stop TitlePlay X X XX X X X X Title_Group_Play PTTPlay, X X X X X X X X TrackPlay TimePlay XX X X X X X X Stop X X X X X TimeSearch X X X PTTSearch, X X XTrackSearch NextTrack X X PrevTrack X X NextPG X X X PrevPG X X XNextDisplay X PrevDisplay X ForwardScan X X X X X BackwardScan X X X X XMenu X X X X X Resume X X Up X X X X Down X X X X Left X X X X Right X XX X Enter X X X X ButtonSelectand X X X X Activate Pause X X X X XMenuLanguageSelect X X TextLanguageSelect X X AudioChange X X X X X X XX SubpictureChange X X X X X AngleChange X X X X ParentalLevel XParentalCountry X VideoPresentation X X X X X X Mode KaraokeMode X X XHiddenGroupPlay X X X X X HiddenTrackPlay X X X X X HiddenTimePlay X X XX X

User Operation Control Summary

AMGM (Audio Manager Menu): Optional Visual Menu defined in the AudioManager (AMG). The Audio Manager contains the information and data tocontrol all Audio Title Sets (ATS), all Video Title Sets (VTSs) forAudio Titles and the AMGM.

Enumerations: Item Options Value Domain First Play 1 Video Manager Menu2 Video Title Set Menu 3 Title 4 Stop 5 Unknown −1 Menus Title Menu 2Root Menu 3 Subpicture Languages 4 Menu Audio Languages Menu 5 AngleMenu 6 Chapter Menu 7 Play State None 0 Scanning 1 Stop 2 Pause 3 Play 4Slow 5 Step 6 Unknown −1 Speed State Normal Speed 0 Double Speed 1 SlowForward Speed 2 Slow Backward Speed 3 Fast Forward Speed 4 Fast BackwardSpeed 5 Step Speed 6 Unknown −1

Enumerations

With reference to FIG. 5, a process 500 is described for providing anenhanced multimedia experience. In an operation 502, DVD content isrecorded onto a DVD disc. Then, in an operation, 504, the HTML contentis recorded onto the same disc. Thereafter, in an operation 506, thedisc is inserted into a client device. The client device can be, forexample a personal computer having DVD capabilities and an Internetbrowser. The client device could also be a set top box. Then in anoperation 508, the DVD content is accessed by DVD software present onthe client device. In a step 510, the HTML data is accessed. The HTMLcontent is preferably accessed by the browser software already presenton the client device. The HTML content is can include data obtained viathe Internet by the browser software under the direction of the HTMLcontent recorded onto the disc. Also, the HTML content can consist ofonly the recorded HTML data with no need for Internet connection.Finally, in an operation 512, the DVD content is supplemented with theHTML content to provide an enhanced multimedia event. The HTML contentcan be added to the DVD content in multiple ways. For example, the HTMLcontent can be in the form of a picture within a picture, (e.g. arelatively small window within a DVD video). The HTML content could alsobe update data incorporated directly into a video or could be in theform of navigation commands or relevant Internet links.

With reference to FIG. 6, a general process 600 is described forenhancing DVD-content with ROM content. In an operation 602, DVD contentis recorded onto a disc. The DVD content is in the form of standard DVDcontent familiar to those skilled in the art. Then, in an operation 604DVD-ROM content is generated. This content is preferably HTML encodedcontent which can be read and operated on by standard Internet browsers.In an operation 606, a plurality of directories are incorporated intothe DVD-ROM content. The directories allow operation with multiple userdevice platforms. The directories preferably include common directorieswhich can be used on several platforms sharing common properties as wellas platform specific directories for use with platforms having uniqueinterface requirements. Thereafter, in an operation 608, the DVD-ROMcontent along with the directories is recorded onto the disc. Then, inan operation 610, the user's particular device platform is determined.This operation occurs automatically upon the user's attempt to use thedisc. Then, in an operation, 612, a directory appropriate for use withthe determined user device platform is selected from among the pluralityof directories. This selected directory is called using Javascriptfunction and appropriate tags associated with the directories.

While the invention herein disclosed has been described by means ofspecific embodiments and applications thereof, numerous modificationsand variations could be made thereto by those skilled in the art withoutdeparting from the scope of the invention set forth in the claims.

1. An information storage medium comprising: AV data including at leastone video object that is constituted of video object units each havingan audio pack, a video pack, and a navigation pack; and event occurrenceinformation for generating an event designated based on a data structureof the AV data.
 2. The information storage medium of claim 1, furthercomprising: a markup document for outputting an AV screen correspondingto the AV data, wherein the event occurrence information is recorded inthe markup document.
 3. The information storage medium of claim 1,wherein the AV data comprises a video title set, a video objectconstituting the video title set, and the video object unitsconstituting the video object and including the audio pack, the videopack, and the navigation pack, and the event occurrence information isfor requesting that a trigger event occurs when one of the video objectunits corresponding to the navigation pack of the video title set isreproduced.
 4. The information storage medium of claim 3, wherein theevent occurrence information requests that designated contents areoutput on a screen when one of the video object units corresponding tothe navigation pack of the video title set is reproduced.
 5. Theinformation storage medium of claim 4, further comprising markupdocument data including the event occurrence information to output amarkup screen, wherein the designated contents are displayed on apredetermined portion of the markup screen on which a markup document isreproduced.
 6. The information storage medium of claim 4, wherein theevent occurrence information comprises: a trigger event identifier; avideo title set identifier of a designated video title set; and anavigation pack identifier of a designated navigation pack.
 7. Theinformation storage medium of claim 6, wherein the trigger eventidentifier comprises: an application program interface for setting thetrigger event and canceling the trigger event.
 8. The informationstorage medium of claim 7, wherein the application program interfacecomprises: parameters including the trigger event identifier, the videotitle set identifier of the designated video title set, and thenavigation identifier of the designated navigation pack.
 9. Theinformation storage medium of claim 6, wherein the video title setidentifier comprises a video title set number, and the navigation packidentifier comprises: a navigation pack number.
 10. The informationstorage medium of claim 6, wherein the video title set identifiercomprises a video object number of the video title set to which acurrently reproduced title belongs, and the navigation pack identifieris determined by a point in time at which reproduction of one of thevideo object units starts.
 11. The information storage medium of claim6, wherein the video title set identifier comprises a program chainnumber, and the navigation identifier comprises: one of a time and aplace of reproduction of a program chain displayed on the screen using acell elapse time.
 12. The information storage medium of claim 6, whereinthe video title set identifier comprises a title number, and thenavigation pack identifier comprises: one of a time and a place ofreproduction of the video title set.
 13. A method of playing aninformation storage medium comprising AV data, which includes a videotitle set containing at least one video object containing video objectunits each having an audio pack, a video pack, and a navigation pack,and event occurrence information for generating a predetermined event,the method comprising: interpreting the event occurrence information;and generating the event if a data structure matched with a result ofthe interpretation of the event occurrence information is discoveredwhile the AV data is being decoded.
 14. The method of claim 13, whereinthe an information storage medium comprises a markup document containingthe event occurrence information, and the interpreting of the eventoccurrence information comprises: reading event occurrence informationfrom the markup document in which a display window for displaying an AVscreen on which the video object is reproduced is defined; and detectingplace in which the event matched with the interpretation result occurs.15. The method of claim 14, wherein the video object that is constitutedof cells each having the audio pack, the video pack, and the navigationpack, and the generating of the event comprises: reproducing a portionof the AV data corresponding to the place in which the event occurs. 16.The method of claim 15, wherein the generating of the event comprises:outputting designated contents on a screen at a point in time or severalmilliseconds after the reproduction of the portion of the video objectunit corresponding to the navigation pack of the video title set. 17.The method of claim 13, wherein the event occurrence informationcomprises: a trigger event identifier; a designated video title setidentifier; and a designated navigation pack identifier.
 18. The methodof claim 17, wherein the trigger event identifier comprises: a firstidentifier for setting a trigger event; and a second identifier forcanceling the trigger event.
 19. The method of claim 13, wherein theevent occurrence information is implemented as an application programinterface.
 20. The method of claim 19, wherein the application programinterface comprises: parameters including the trigger event identifier,the video title set identifier of a designated video title set, and thenavigation pack identifier of a designated navigation pack.
 21. Anapparatus for playing an information storage medium comprising AV data,which includes a video title set containing at least one video objectthat is constituted of video object units each having an audio pack, avideo pack, and a navigation pack, and event occurrence information forgenerating a predetermined event, the apparatus comprising: a readerreading the AV data or the event occurrence information; a presentationengine interpreting the read event occurrence information, outputtingthe interpretation result, and generating the event; and a decoderrequesting the presentation engine to generate an appropriate event if adata structure of the AV data matched with the interpretation resultreceived from the presentation engine is discovered during decoding theAV data.
 22. The apparatus claim 21, wherein the information storagemedium comprises markup document data containing the event occurrenceinformation, and the presentation engine interprets the event occurrenceinformation read from the markup document defining a display window fordisplaying an AV screen on which the AV data is reproduced.
 23. Theapparatus of claim 22, wherein the presentation engine generates theevent when the AV data corresponding to the navigation pack of adesignated video title set is reproduced.
 24. The apparatus of claim 23,wherein the presentation engine provides a screen in accordance with themarkup document data and outputs designated contents on the screen at apoint in time when or several tens of milliseconds after a video objectunit corresponding to the navigation pack of the designated video titleset starts being reproduced.
 25. The apparatus of claim 24, wherein theevent occurrence information is implemented as an application programinterface.
 26. The apparatus of claim 25, wherein the applicationprogram interface comprises: parameters including a trigger eventidentifier, a video title set identifier of the designated video titleset, and a navigation pack identifier of the designated navigation pack.27. The apparatus of claim 26, wherein the trigger event identifiercomprises: a first identifier for setting the event; and a secondidentifier for canceling the event.
 28. An information storage mediumcomprising: AV data having a data structure, which includes a videotitle set containing a video object having a plurality of video objectunits each having an audio pack, a video pack, and a navigation pack;and markup document data containing event occurrence informationgenerating a designated event based on the data structure of the AVdata.
 29. The information storage medium of claim 28, wherein the eventoccurrence information comprises: event information; and a requestdisplaying a content of the AV data on a designated portion of a screenprovided by the markup document when the data structure of the AV datais matched with the event information.
 30. A method of reproducing datafrom an information storage medium comprising AV data, which comprises adata structure including a video title set containing a video objecthaving a plurality of video object units each having an audio pack, avideo pack, and a navigation pack, and markup document data comprisingevent occurrence information, the method comprising: reading the markupdocument data; interpreting the event occurrence information; generatinga screen provided by the markup document data; and displaying a contentof the AV data on a portion of the screen according to an event of eventoccurrence information when the data structure of the AV data is matchedwith the event occurrence information.
 31. The method of claim 30,wherein the markup document data comprises parameters including atrigger event identifier, a video title set identifier of a designatedvideo title set, and a navigation pack identifier of a designatednavigation pack, and generating of the content comprises: matching theparameters of the markup document data with the navigation pack of thevideo title set.